/*
 * StaffInfo。java
 * 
 * Created Date: 2014年12月2日
 * 
 * Copyright (c) Centling Technologies Co., Ltd.
 * 
 * This software is the confidential and proprietary information of
 * Centling Technologies Co., Ltd. ("Confidential Information"). You shall not
 * disclose such Confidential Information and shall use it only in accordance
 * with the terms of the license agreement you entered into with
 * Centling Technologies Co., Ltd.
 */

package com.centling.bluecollar.staff.entity;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.GenericGenerator;

import com.centling.bluecollar.customer.entity.EnterpriseCustomer;
import com.centling.bluecollar.customer.entity.OperatePost;
import com.centling.bluecollar.system.entity.EmploymentNature;
import com.centling.bluecollar.system.entity.StaffSource;

/**
 * @author chris.wei
 * @version <br>
 *          <p>
 *          人员基本信息
 *          </p>
 */
@Entity
@Table(name = "s_staffInfo")
public class StaffInfo {
	
	private String id;
	private int serialNum;// 通运编号
	private String serialNum_display;// 显示查询通运编号
	private String staffName; // 姓名
	private String idNumber;// 身份证号
	private String sex; // 性别
	private String birthDay; // 出生日期
	private String nation;// 民族
	private String education;// 学历
	private String marry;// 是否婚配
	private String registeredAddress;// 户口所在地
	private String address;// 现居住地址
	private String contractStatus;// 合同状态
	private String emergencyContact;// 紧急联系人
	private String tel;// 联系电话
	private String registeredNature;// 户口性质
	private String staffStatus;// 员工状态，离职或在职
	private String department;// 所在部门
	private String danger;// 岗位是否危险
	private String qqNum;// QQ号
	private String remark;// 备注
	private String remark1;// 备注
	private String remark2;// 备注
	private String remark3;// 备注
	private String remark4;// 备注
	private String remark5;// 备注
	private EnterpriseCustomer enterpriseCustomer; // 派遣单位
	private OperatePost operatePost;// 工种,操作岗位
	private StaffSource staffSource;// 来源
	private EmploymentNature employmentNature;// 用工性质
	private InsuranceContract insuranceContract;// 保险合同
	private String remind; // 提醒
	private String entryDate;// 入职时间
	private Date createDate; // 创建时间
	
	/**
	 * @return the id
	 */
	@GenericGenerator(name = "idGenerator", strategy = "uuid")
	@Id
	@GeneratedValue(generator = "idGenerator")
	@Column(name = "id", unique = true, nullable = false, length = 50)
	public String getId() {
	
		return id;
	}
	
	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(String id) {
	
		this.id = id;
	}
	
	/**
	 * @return the serialNum
	 */
	@Column(name = "serialNum", unique = true, nullable = false, length = 8)
	public int getSerialNum() {
	
		return serialNum;
	}
	
	/**
	 * @param serialNum
	 *            the serialNum to set
	 */
	public void setSerialNum(int serialNum) {
	
		this.serialNum = serialNum;
	}
	
	/**
	 * @return the serialNum_display
	 */
	@Column(name = "serialNum_display", length = 100)
	public String getSerialNum_display() {
	
		return serialNum_display;
	}
	
	/**
	 * @param serialNum_display
	 *            the serialNum_display to set
	 */
	public void setSerialNum_display(String serialNum_display) {
	
		this.serialNum_display = serialNum_display;
	}
	
	/**
	 * @return the enterpriseCustomer
	 */
	@ManyToOne(cascade = { CascadeType.ALL })
	@JoinColumn(name = "enterpriseCustomer_id")
	public EnterpriseCustomer getEnterpriseCustomer() {
	
		return enterpriseCustomer;
	}
	
	/**
	 * @param enterpriseCustomer
	 *            the enterpriseCustomer to set
	 */
	public void setEnterpriseCustomer(EnterpriseCustomer enterpriseCustomer) {
	
		this.enterpriseCustomer = enterpriseCustomer;
	}
	
	/**
	 * @return the staffSource
	 */
	@ManyToOne(cascade = { CascadeType.ALL })
	@JoinColumn(name = "staffSource_id")
	public StaffSource getStaffSource() {
	
		return staffSource;
	}
	
	/**
	 * @param staffSource
	 *            the staffSource to set
	 */
	public void setStaffSource(StaffSource staffSource) {
	
		this.staffSource = staffSource;
	}
	
	/**
	 * @return the staffName
	 */
	@Column(length = 100)
	public String getStaffName() {
	
		return staffName;
	}
	
	/**
	 * @param staffName
	 *            the staffName to set
	 */
	public void setStaffName(String staffName) {
	
		this.staffName = staffName;
	}
	
	/**
	 * @return the idNumber
	 */
	@Column(name = "idNumber", unique = true, nullable = false, length = 100)
	public String getIdNumber() {
	
		return idNumber;
	}
	
	/**
	 * @param idNumber
	 *            the idNumber to set
	 */
	public void setIdNumber(String idNumber) {
	
		this.idNumber = idNumber;
	}
	
	/**
	 * @return the sex
	 */
	@Column(length = 100)
	public String getSex() {
	
		return sex;
	}
	
	/**
	 * @param sex
	 *            the sex to set
	 */
	public void setSex(String sex) {
	
		this.sex = sex;
	}
	
	/**
	 * @return the birthDay
	 */
	@Column(length = 100)
	public String getBirthDay() {
	
		return birthDay;
	}
	
	/**
	 * @param birthDay
	 *            the birthDay to set
	 */
	public void setBirthDay(String birthDay) {
	
		this.birthDay = birthDay;
	}
	
	/**
	 * @return the nation
	 */
	@Column(length = 100)
	public String getNation() {
	
		return nation;
	}
	
	/**
	 * @param nation
	 *            the nation to set
	 */
	public void setNation(String nation) {
	
		this.nation = nation;
	}
	
	/**
	 * @return the education
	 */
	@Column(length = 100)
	public String getEducation() {
	
		return education;
	}
	
	/**
	 * @param education
	 *            the education to set
	 */
	public void setEducation(String education) {
	
		this.education = education;
	}
	
	/**
	 * @return the marry
	 */
	@Column(length = 100)
	public String getMarry() {
	
		return marry;
	}
	
	/**
	 * @param marry
	 *            the marry to set
	 */
	public void setMarry(String marry) {
	
		this.marry = marry;
	}
	
	/**
	 * @return the registeredAddress
	 */
	@Column(length = 400)
	public String getRegisteredAddress() {
	
		return registeredAddress;
	}
	
	/**
	 * @param registeredAddress
	 *            the registeredAddress to set
	 */
	public void setRegisteredAddress(String registeredAddress) {
	
		this.registeredAddress = registeredAddress;
	}
	
	/**
	 * @return the address
	 */
	@Column(length = 400)
	public String getAddress() {
	
		return address;
	}
	
	/**
	 * @param address
	 *            the address to set
	 */
	public void setAddress(String address) {
	
		this.address = address;
	}
	
	/**
	 * @return the contractStatus
	 */
	@Column(length = 100)
	public String getContractStatus() {
	
		return contractStatus;
	}
	
	/**
	 * @param contractStatus
	 *            the contractStatus to set
	 */
	public void setContractStatus(String contractStatus) {
	
		this.contractStatus = contractStatus;
	}
	
	/**
	 * @return the emergencyContact
	 */
	@Column(length = 400)
	public String getEmergencyContact() {
	
		return emergencyContact;
	}
	
	/**
	 * @param emergencyContact
	 *            the emergencyContact to set
	 */
	public void setEmergencyContact(String emergencyContact) {
	
		this.emergencyContact = emergencyContact;
	}
	
	/**
	 * @return the tel
	 */
	@Column(length = 100)
	public String getTel() {
	
		return tel;
	}
	
	/**
	 * @param tel
	 *            the tel to set
	 */
	public void setTel(String tel) {
	
		this.tel = tel;
	}
	
	/**
	 * @return the employmentNature
	 */
	@ManyToOne(cascade = { CascadeType.ALL })
	@JoinColumn(name = "employmentNature_id")
	public EmploymentNature getEmploymentNature() {
	
		return employmentNature;
	}
	
	/**
	 * @param employmentNature
	 *            the employmentNature to set
	 */
	public void setEmploymentNature(EmploymentNature employmentNature) {
	
		this.employmentNature = employmentNature;
	}
	
	/**
	 * @return the registeredNature
	 */
	@Column(length = 100)
	public String getRegisteredNature() {
	
		return registeredNature;
	}
	
	/**
	 * @param registeredNature
	 *            the registeredNature to set
	 */
	public void setRegisteredNature(String registeredNature) {
	
		this.registeredNature = registeredNature;
	}
	
	/**
	 * @return the department
	 */
	@Column(length = 1000)
	public String getDepartment() {
	
		return department;
	}
	
	/**
	 * @param department
	 *            the department to set
	 */
	public void setDepartment(String department) {
	
		this.department = department;
	}
	
	/**
	 * @return the operatePost
	 */
	@ManyToOne(cascade = { CascadeType.ALL })
	@JoinColumn(name = "operatePost_id")
	public OperatePost getOperatePost() {
	
		return operatePost;
	}
	
	/**
	 * @param operatePost
	 *            the operatePost to set
	 */
	public void setOperatePost(OperatePost operatePost) {
	
		this.operatePost = operatePost;
	}
	
	/**
	 * @return the danger
	 */
	@Column(length = 100)
	public String getDanger() {
	
		return danger;
	}
	
	/**
	 * @param danger
	 *            the danger to set
	 */
	public void setDanger(String danger) {
	
		this.danger = danger;
	}
	
	/**
	 * @return the qqNum
	 */
	@Column(length = 100)
	public String getQqNum() {
	
		return qqNum;
	}
	
	/**
	 * @param qqNum
	 *            the qqNum to set
	 */
	public void setQqNum(String qqNum) {
	
		this.qqNum = qqNum;
	}
	
	/**
	 * @return the remark
	 */
	@Column(length = 1000)
	public String getRemark() {
	
		return remark;
	}
	
	/**
	 * @param remark
	 *            the remark to set
	 */
	public void setRemark(String remark) {
	
		this.remark = remark;
	}
	
	/**
	 * @return the staffStatus
	 */
	@Column(length = 100)
	public String getStaffStatus() {
	
		return staffStatus;
	}
	
	/**
	 * @param staffStatus
	 *            the staffStatus to set
	 */
	public void setStaffStatus(String staffStatus) {
	
		this.staffStatus = staffStatus;
	}
	
	/**
	 * @return the entryDate
	 */
	@Column(length = 100)
	public String getEntryDate() {
	
		return entryDate;
	}
	
	/**
	 * @param entryDate
	 *            the entryDate to set
	 */
	public void setEntryDate(String entryDate) {
	
		this.entryDate = entryDate;
	}
	
	/**
	 * @return the createDate
	 */
	@Column(name = "createDate")
	public Date getCreateDate() {
	
		return createDate;
	}
	
	/**
	 * @param createDate
	 *            the createDate to set
	 */
	public void setCreateDate(Date createDate) {
	
		this.createDate = createDate;
	}
	
	/**
	 * @return the insuranceContract
	 */
	@Transient
	public InsuranceContract getInsuranceContract() {
	
		return insuranceContract;
	}
	
	/**
	 * @param insuranceContract
	 *            the insuranceContract to set
	 */
	public void setInsuranceContract(InsuranceContract insuranceContract) {
	
		this.insuranceContract = insuranceContract;
	}
	
	/**
	 * @return the remind
	 */
	@Transient
	public String getRemind() {
	
		return remind;
	}
	
	/**
	 * @param remind
	 *            the remind to set
	 */
	public void setRemind(String remind) {
	
		this.remind = remind;
	}

	
	public String getRemark1() {
	
		return remark1;
	}

	
	public void setRemark1(String remark1) {
	
		this.remark1 = remark1;
	}

	
	public String getRemark2() {
	
		return remark2;
	}

	
	public void setRemark2(String remark2) {
	
		this.remark2 = remark2;
	}

	
	public String getRemark3() {
	
		return remark3;
	}

	
	public void setRemark3(String remark3) {
	
		this.remark3 = remark3;
	}

	
	public String getRemark4() {
	
		return remark4;
	}

	
	public void setRemark4(String remark4) {
	
		this.remark4 = remark4;
	}

	
	public String getRemark5() {
	
		return remark5;
	}

	
	public void setRemark5(String remark5) {
	
		this.remark5 = remark5;
	}
	
	
}
